#include<iostream>
#include<limits>
#include<string>
using namespace std;

int main()
{

	//print maximum of integral types
	cout<<"max(short): "<<numeric_limits<short>::max()<<endl;
	cout<<"max(int): "<<numeric_limits<int>::max()<<endl;
	cout<<"max(long): "<<numeric_limits<long>::max()<<endl;
	cout<<endl;
	
	//print maximum of floating-point types
	cout<<"max(float): "<<numeric_limits<float>::max()<<endl;
	cout<<"max(double): "<<numeric_limits<double>::max()<<endl;
	cout<<"max(long double): "<<numeric_limits<long double>::max()<<endl;
	cout<<endl;
	
	//print whether char is signed
		//use textual representation for bool
	cout<<"is_signed(char): "<<numeric_limits<char>::is_signed<<endl;

	//print whether numeric limits for type string exist
	cout<<"is_specialized(string): "<<numeric_limits<string>::is_specialized<<endl;
	
	return 0;
}